快速上手NAS系统unRAID之基础篇(下):文件共享、容器、虚拟机 |
您所在的位置:网站首页 › unraid 外网分享文件 › 快速上手NAS系统unRAID之基础篇(下):文件共享、容器、虚拟机 |
快速上手NAS系统unRAID之基础篇(下):文件共享、容器、虚拟机
2020-11-08 11:53:44
85点赞
676收藏
49评论
NOTE本文字数 6000+,配图 40+,预估阅读时间 12~15 分钟 写在前面本文是 unRAID 基础篇的下篇,主要介绍文件共享、容器管理、虚拟机管理三大部分 这次我整理出来一个脑图大纲,可以快速获取并挑选自己感兴趣的部分查阅 也顺便列一下我之前整理 unRAID 系列的文章,方便大家查看 ![]() ![]() 在启动 unRAID 的存储阵列 Array 之后,就可以配置共享目录 这里默认会创建一些初始目录,给 unRAID 系统使用 head> 目录作用备注system存放系统数据文件系统默认存放appdata存储应用数据文件系统默认存放domains存储虚拟机实例数据建议存放,用户可选择isos存储系统镜像文件等建议存放,用户可选择在切到 SHARE 后,点击 ADD SHARE(添加共享),就可以新增一个共享目录 设置一个共享名,也就是后续的目录名,其他选择无特殊需求默认即可 之后重新点击目录名,就可以进入共享设置 unRAID 的共享设置算是比较简单的,不过也能满足大部分需求 其中关于 Export(导出) 参数: No,该目录不进行共享,无法通过网络访问共享目录 Yes,该目录开启共享,且用户可见,比如只输入 IP,可以看到对应共享目录,选择访问 Yes(Hide),可通过网络访问,但不会列出来,需要手动输入共享目录名才可访问 在添加共享目录后,默认的共享设置如下图 也就是,允许匿名访问,并且可以任意读写,相当于完全的果奔 所以强烈建议,统一将全部的目录(包括初始化创建的)设置为 Export: No 然后再按实际需求,对特定目录来开启共享 进阶配置关于文件共享的进阶介绍,按照具体场景来分析 场景一 作为影音目录,希望局域网内所有人可见且不需要登录就可以访问来看电影等 但是必须登录之后,才允许写入新文件或删除已有的电影,类似于影音管理员角色 参数推荐设置Export(导出)Yes[是]Security(安全)Security[安全]点击 APPLY 之后,就可以选择控制哪些用户能够具体读写权限 除了指定拥有 Write/Read 读写权限的用户,其他用户(包括匿名用户)都是只读 场景二 作为工作目录,希望局域网内所有人可见,但必须登录后才能访问(禁止匿名) 同时,普通用户登录后只读,只有特定用用户菜可以读写 参数推荐设置Export(导出)Yes(是)Security(安全)Private(私有)点击 APPLY 之后,就可以选择哪些用户不允许访问,哪些用户可以读写、只读等 场景三 作为隐私目录,不希望被局域网内的用户看到有这个共享, 禁止匿名,且普通用户且必须登录后才能访问进行读写 参数推荐设置Export(导出)Yes(Hide)[是(隐藏)]Security(安全)Private[私有]多用户访问 需要注意的是,windows 对同一个文件共享服务器在同个时间只允许一个用户访问 也就是如果你希望在同一台 windows 电脑上用不同的用户访问文件共享,就会报错 但是,我们可以换另外一种方式来绕过这个限制,之前用的是 IP 访问 现在可以通过 Nas 服务器名称来访问,比如我这台 unRAID 设置的是 MyNas 就可以通过这个服务器名称来访问,并且用另外的用户进行登录: 通过这种访问来绕过 Windows 本身的限制 如果乐意的话,你甚至可以通过写 hosts 文件来实现 3 个甚至更多用户同时访问 大小写问题 unRAID 是基于 Linux 定制的,对文件名是大小写敏感的 而 SMB 文件共享本身是不区分大小写,但共享名对应的是 unRAID 下的目录名 所以就会存在一些认知上的问题,可以参照以下例子: 比如上图中的 Medias 共享目录,我们在通过 SMB 访问的时候,可以输入: medias MEDIAS Medias 这三种访问地址都能够在 Windows 上访问到对应的 Medias 用户共享目录 但是在 unRAID 上进行操作的时候,则必须使用 Medias 来定位该目录 如果使用 MEDIAS、medias,则会提示目录不存在 磁盘共享前面我们使用的文件共享,是默认的用户共享类型,此外还存在另外一种磁盘共享。 unRAID 的文件共享,按照类型可以分成以下两类: 用户共享,在多个数据盘之间提供一个统一的名称空间,而底层数据是分布在各个数据盘之上的,可以简单理解为就是一个大文件系统,对用户屏蔽了底层文件存储细节 磁盘共享,直接提供某一个或多个数据盘,与我们传统的文件共享类似,直接将整块数据盘进行共享 这两种共享方式,其实是同一基础文件系统的两个不同视图 也就是出现在用户共享的文件,其实也会出现在对应的磁盘共享中 用户共享 引用自维基百科用户空间文件系统(Filesystem in Userspace,简称 FUSE)是一个面向类 Unix 计算机操作系统的软件接口,它使无特权的用户能够无需编辑内核代码而创建自己的文件系统。目前 Linux 通过内核模块对此进行支持。一些文件系统如 ZFS、glusterfs 和 lustre 使用 FUSE 实现。 用户共享其实就是 unRAID 提供的一种用户空间文件系统(FUSE FileSystem) 将多个独立数据盘上文件映射成一个大文件系统暴露给用户 如上图,在用户共享看到的 Media 目录,对应是存储在 Disk1 与 Disk3 上 并且这个两个磁盘上存储的是不同的目录文件 而通过共享目录最终看到的,是合并 Disk1 与 Disk3 上 Media 目录的内容 目标目标包含的文件Disk1/Media/Videos/VacationsDisk3/Media/Videos/HolidaysUserShare/Media/Videos/Vacations/Media/Videos/Holidays磁盘共享 unRAID 默认是只启用了用户共享,如果你想开启磁盘共享,需要先进行配置调整 SETTINGS => Global Share Setting 如上图提示,默认的配置是 Auto(自动),也即作为用户共享的磁盘,就不能设置磁盘共享 可以条调整为 Yes(是),来特定的数据盘单独进行共享 注意事项 如果你同时启用了用户共享与磁盘共享,绝对不要进行以下操作! 在用户共享与磁盘共享之间进行同文件、目录的复制操作 因为对于 unRAID 底层文件系统而言,并不知道用户共享这种 FUSE 文件系统 可能会导致在文件系统上尝试将文件复制到自身,导致文件被截断为零长度(相当于清空) 容器管理如果你是刚接触 unRAID 容器,强烈建议先看一下司波图大佬的 unRAID docker 视频: Docker速通教程(全平台可参考)——司波图 UNRAID 陪玩教程 02 unRAID 容器基础我使用的这个版本的 unRAID 默认安装了 19.03.5 的 docker 并且做了两个特殊的配置: 数据卷 如上图,为了方便管理,unRAID 创建了一个 loopback 文件系统: /mnt/user/system/docker/docker.img 可以通过系统命令查看到: 挂载到 /var/lib/docker 也就是 docker 的主路径,保存镜像文件、运行时文件等 总大小为 20G,所以在下载大文件时,一般会通过将外部共享目录挂载到容器中作为下载目录,以避免撑爆这个 loop 设备 使用的时 btrfs,方便后期进行扩容,同时也可以利用上该文件系统的一些特性,比如快照等 通过这种方式,unRAID 将 docker 相关的数据,都存放到这个 docker.img 文件中 所以我们可以通过备份这个 img 文件来实现备份 docker 配置, 在需要还原的时候,直接通过备份的 img 文件替换掉现有的文件来实现还原 配置目录 这里的配置,指的的 docker 中运行的应用软件的配置,比如 transmission 等 众所周知,在启动的容器中进行的文件变动,会随容器销毁而丢失 所以 unRAID 是建议将容器运行软件的配置写入挂载到容器中的配置目录以实现持久化: /mnt/user/appdata 以 transimission 为例,查看对应容器的运行参数配置 这样,即使 transmission 容器销毁了,只需要按照原来的启动命令启动就可以恢复 镜像源加速默认情况下,unRAID 会从国外的 docker 源下载镜像,本身就比较慢 如果出现出国线路抽风或者 DNS 污染,拉取镜像就是一件非常烦心的事情了 这里我们可以通过修改为国内源进行加速(这里以中科大的源为例): cat /etc/docker/daemon.json { "registry-mirrors": ["https://ustc-edu-cn.mirror.aliyuncs.com/"] } EOF 然后执行重启 dockerd 的命令(该命令同时会关闭运行中的容器) /etc/rc.d/rc.docker restart 之后就可以从国内的镜像源拉镜像,速度以及稳定性更好 不过这种方式在 unRAID 重启会失效,因此还需要进行持久化, 将第一条命令追加到 /boot/config/go 这个文件的最后即可(重启命令不要加上) 这样每次 unRAID 在重启之后就会执行这条命令,自动配置好镜像源 如果不熟悉命令行编辑,可以直接挂载出来图形化文本编辑器 我自己目前用的是阿里的源,与上述例子中不太一样,可自行选择 这个是我设置后测试的结果,拉一个 qbittorrent 309MB 的镜像大概花了 32 秒 电信的百兆宽带,跑到 9.6MB/s ,这个速度算是挺快了 APP 商店安装应用正如上一篇基础中提到的: 这款 unRAID 的 APP 商店,本质上是一个 docker 模板库: 提供模板预设减少配置工作,比如图标、WebUI、关键运行参数等 执行 docker pull 拉取对应的容器镜像到本地 我们在 APP 商店中下载一个 APP,对应就是配置一个容器并运行起来 这里我以上面提到的 qbittorrent 为例,简单介绍如何安装并运行 在应用商店中过滤然后点击安装按钮,我选择的是 linuxserver 发布的镜像 设置一个 unRAID 宿主上的目录作为 qb 的下载目录,然后点击 APPLY 即可 PS: 因为只是演示,所以就尽量简化配置,实际上不建议使用默认的 6881 端口 回到 DOCKER 页面,可以看到 qbittorrent 已经运行起来了, 点击图标进入 WebUI,或直接按照 unRAID 映射地址访问(http://10.0.0.2:8080/) 就可以看到登录页面,输入默认用户密码就可以进入 qbittorrent 管理界面 PS: 这个版本 qbittorrent 的默认用户名密码是 admin adminadmin,记得修改 模板库安装应用社区 APP 商店无法覆盖全部的应用,总是有些不在里面的, 虽然可以手动拉取镜像来配置启动,但是有一定的门槛,需要了解 docker 基础知识, 因此,就有了 容器模板库 的概念 其实就相当于一个小型的、轻量版的社区 APP 商店 添加模板库之后,就可以按照预设的模板安装模板库中的应用,流程基本类似 https://github.com/shuosiw/unraid 这里以灯大的 FileBrowserEnhanced 为例,我已经定制了一个模板, 可以添加我的模板库来安装(地址在上方),全中文介绍说明容易上手 选中 FileBrowserEnhanced 模板后,就可以开始配置 常用的参数已经加上,并设置了建议值,如有需要可以自行调整 配置完成后点击 APPLY 就可以开始安装并启动 点击图标 WebUI 就可以访问 FBE 管理页面了,默认口令 admin:admin unRAID 提供了基于 KVM 技术的虚拟机功能,不过与 pve、exsi 相比, unRAID 在单纯的虚拟机管理方面基本没有什么优势,比如连快照功能都没有 但如果换个思路,与其他成品 NAS 相比,unRAID 的虚拟机优势就比较明显了: 几乎无需进行设置就能开启硬件直通给虚拟机使用 在灵活的文件存储、原生 docker 支持的基础上,还附加了简单直接的虚拟机功能 加拿大白嫖王也曾在一期视频中用 unRAID 的硬件直通来配置双人一机情侣电脑 感兴趣的也可以看看以下这个视频:【官方双语】我们装了台情侣电脑! 这部分我更加倾向于把虚拟机功能作为 unRAID NAS 的附加功能, 目前也只安装了 openwrt 作为旁路由,灯大的 win10 精简版以备不时之需。 安装 OpenWRT 虚拟机这里我以安装一个最新版本的 openwrt 虚拟机为例,介绍 unRAID 创建虚拟机流程 首先下载好 OpenWRT 最新版 19.07.4 的镜像: 我选择的是 combined-ext4.img.gz 以方便直接导入虚拟机作为镜像 默认是压缩格式,需要加压出来并上传到 unRAID 的磁盘存储上, 这里我进行重命名,保存路径为:/mnt/user/isos/openwrt-19.07.4.img 点击添加虚拟机,选择 Linux 虚拟机开始进行配置: CPU 先分配两个就够了,毕竟 x86 架构的比 arm 架构性能已经提升很多 内存分配了初始 256M,最大允许 512M,够用 机器保持默认的 Q35-4.2 即可 BIOS 修改为 SeaBIOS 因为下载的已经是可用镜像,不需要执行安装流程: 系统安装 ISO 留空 虚拟磁盘位置,选择手动,并修改为前面上传的 img 文件路径 虚拟磁盘总线保持默认的 VirtIO 即可 其他的参数不需要修改,保持默认即可,最后点击创建自动启动 返回主界面,点击 OpenWRT 虚拟机图标打开 VNC 远程连接进行配置 界面上会一直刷启动日志等到出现 link becomes ready 则启动完毕 此时 openwrt 网络没配置没法使用,需要进行配置 通过该命令打开网络配置文件:vi /etc/config/network NOTE需要注意,上图中的 IP 需要根据你自己的实际路由网络进行调整,比如我的主路由是 10.0.0.1,Nas IP 是 10.0.0.2,再分配一个没有被使用的同网段的 IP 10.0.0.3 作为 openwrt 的 IP 回到 unRAID 管理页面上重启该虚拟机,重启后就在 WEB 上进行配置 通过我们分配的 IP 访问就可以看到官方原版的 19.07.4 OpenWRT管理界面了 不过此时,openwrt 的网络还存在一点问题,需要进行配置 到 Network => Interfaces 页面,点击 LAN 后面的 Edit 按钮,关闭 DHCP 因为是作为旁路由,不需要提供 DHCP 功能(给了也没用) 到 Network => Firewall 页面: 设置 General Settings 将 Forward 设置为 accept 设置 Zones 的 WAN 口策略全部放通,Input、Output、Forward 都设置为 accept 最后点击 Save & Apply 使变更生效,这样就完成了 openwrt 的网络配置 然后就可以到 System => Software 来安装中文语言包了: 先点击 Update lists 更新软件包列表 过滤 base-zh 并安装中文语言包 完成完毕后刷新一下页面,就可以看到中文界面了 PS: 如果更新软件包列表比较慢,可以切换到国内源,自行网上搜索 编辑视图丢失配置unRAID 的虚拟机是基于 KVM 技术的,是对 KVM 进行二次封装来实现虚拟机的功能, 同时提供一个 WebUI 来简化配置流程,不过图形界面的配置并没办法覆盖到很多场景 所以很多时候,我们也需要切换到 XML 视图来定制 KVM 的参数 在这种情况下,就需要特别注意: 在图形界面上编辑后可全量转到 XML 视图进行配置 如果在 XML 视图上进行自定义配置,切回图形界面后再保存时可能回丢掉部分参数配置 所以,如果是在 XML 上定制过的虚拟机配置,建议以后都在 XML 视图进行修改保存 否则有可能会导致 XML 中定制的配置丢失,影响到已经配置好的虚拟机 如果只在默认的图形界面上操作,则不需要关心这个问题 写在后面感觉这次的基础篇埋的坑有点大,有些内容展开讲太多,不展开又没法介绍清楚 再加上我的风格是习惯理论分析+实践介绍,所以会比一些纯教程教学的文章更多文字 我会尽量尝试把一些理论的东西以最简单的方式整理出来。 接下来应该是就是第一篇时候埋的坑了,jellyfin 影音库搭建 + tmm 刮削的教程了 感兴趣的值友可以关注一下方便第一时间查看,有任何疑问都可以评论回复,定期回答~ ![]() |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |